
#pragma once

#include <stdio.h>

#include "core/olisp_core.h"
#include "utility/olisp_quote_mgr.h"

enum lisp_printer_options_t
{
    PRN_OPT_NONE = 0,
    PRN_OPT_ADD_TYPEINFO = 1,
};

typedef struct
{
    FILE *              stream;
    int                 options;

#ifdef LISP_FEAT_QUOTE_SUPPORT
    /*
     * if non-null printer will add quotes info to elements
     */
    lisp_quote_mgr_t *  quote_mgr;
#endif
} printer_context;


void print_elem( obj_t * elem, printer_context * ctx );
